12 Кодових правила
12 Кодових правила чини скуп од тринаест правила која је предложио Едгар Ф. Код, са циљем да дефинише шта је потребно да поседује један систем за манипулацију базом података да би га могли сматрати релационим (у енглеској литератури RDBMS).[1][2]
Код је срочио ова правила као део личне потребе да спречи разбијање своје визије релационе базе података, с обзиром да су продавци база података настојали почетком осамдесетих година двадесетог века да запакују постојеће производе у релациону обланду. Правило број 12 је посебно било наведено да се супротстави таквим настојањима. У суштини, правила су толико строга да ниједан од популарних тзв. "релационих" система за манипулацију базама података не испуњава све Кодове критеријуме.
Правила
[уреди | уреди извор]0. Систем се мора квалификовати као релациони, као база података, и као систем за манипулацију.
- Да би систем назвали релационим системом за манипулацију базом података (RDBMS), он искључиво мора користити своје релационе могућности да управља базом података.
1. Правило информације:
- Све информације у бази података морају бити представљене на јединствен начин, својим вредностима у колонама у оквиру редова табела.
2. Правило гарантованог приступа:
- Сви подаци морају бити доступни без двосмислености. Ово правило је у суштини реформулација основног захтева за постојањем примарних кључева. Оно тражи да је свака појединачна вредност у бази логички адресибилна навођењем назива табеле која је садржи, назива колоне у којој се налази и вредности примарног кључа реда који је садржи.
3. Систематично третирање null вредности:
- Систем мора дозвољавати да свако поље може, по потреби, остати празно (или имати вредност null). Посебно, мора подржавати представљање "информација које фале или се не могу применти" које је систематично, различито од свих регуларних вредности (на пример, "различито од нуле и било ког другог броја," у случају бројевних вредности), и независно од типа података. Такође се наглашава да такве репрезентације систем мора третирати доследно.
4. Активни, увек доступан каталог заснован на релационом моделу:
- Систем садржи опис базе података на логичком нивоу у виду табела, тј. релациони каталог доступан ауторизованим корисницима кроз употребу њиховог стандардног језика за упите. То значи да корисници морају бити у могућности да приступе структури базе података (каталогу) користећи исти језик за упите којим се служе да би приступили самим подацима.
5. Правило разумљивог подјезика:
- Систем мора да подржава бар један релациони језик који
- (a) Има линеарну синтаксу,
- (b) може да се користи и интерактивно и у оквиру апликативних програма,
- (c) подржава операције дефинисања података (укључујући дефинисање погледа), операције манипулисања подацима (ажурирање подједнако као и издвајање), правила интегритета и ауторизацију, као и операције манипулисања трансакцијама (begin, commit, и rollback).
6. Правило ажурирања погледа:
- Све погледе које је теоријски могуће ажурирати, ажурира систем.
7. Уношење, ажурирање и уклањање података на нивоу скупова:
- Систем мора да подржава скуповне insert, update, и delete операторе. То значи да се информације из релационе базе могу издвајати у скуповима које чине подаци из више редова и више табела. Ово правило тражи да операције додавања, ажурирања и брисања буду примењиве на било који скуп података који се може издвојити из базе, а не само на појединачни ред у једној табели.
8. Физичка независност података:
- Промене на физичком нивоу (начин на који се чувају подаци, да ли су у питању низови или повезане листе итд.) не смеју захтевати промене апликација заснованих на датој структури.
9. Логичка независност података:
- Промене на логичком нивоу (табела, колона, редова, и тако даље) не смеју захтевати промене апликација које су засноване на тој структури. Много је теже постићи логичку него физичку независност података.
10. Независност од правила интегритета:
- Правила интегритета морају бити дефинисана независно од апликативних програма и сачувана у каталогу. Мора бити предвиђена могућност њихове измене у било ком тренутку без непотребног утицања на постојеће апликације.
11. Независност од дистрибуције:
- Дистрибуција делова базе на различите локације мора бити невидљива за кориснике базе. Постојеће апликације морају наставити да раде :
- (a) када се први пут уводи дистрибуција базе; и
- (b) при било којој следећој дистрибуцији података у систему.
12. Правило заштите података:
- Ако систем подржава употребу језика који раде на ниском нивоу (манипулација једним слогом у датом тренутку), онда они не могу бити коришћени за напад на систем, у смислу заобилажења правила интегритета или релационе сигурности.